A. Field of the Invention
Concepts described herein relate generally to network traffic flow, and more particularly, to weight-based bandwidth allocation for different classes of service in a network.
B. Description of Related Art
In an increasingly networked world, more and more traffic, such as data, voice, and video, is transmitted over public and proprietary networks. When routing traffic through the network, it is desirable to be able to assign different types of traffic different priorities as the traffic traverses the network. Some applications require stringent limits on end-to-end traffic delay while other applications require minimal bandwidth guarantees. For example, because streaming video and voice data, when it is delayed, can result in a noticeable degradation in quality to the end-user, it may be desirable to assign this type of traffic a higher priority than other traffic.
In Internet Protocol (IP) packet-based networks, each packet may include a header section, a portion of which may be used to indicate the traffic class to which the packet is assigned. A router at the edge of a network may set the traffic class for a packet. Routers in the core of the network may handle the traffic based on the set class. More specifically, a router may allocate network resources (such as bandwidth) to traffic classes within the router based on predetermined bandwidth allocation policies. Typically, within the router, packets of different traffic queues that are routed to the same output port share the link resources of the output port. When the incoming traffic data rate exceeds the output port link capacity, the packets may be buffered and the bandwidth allocation policies applied.
One known set of techniques for allocating bandwidth are weight-based scheduling techniques, such as the so-called Weighted Fair Queuing (WFQ) and Weighted Deficit Round Robin (WDRR) techniques. In these techniques, a weight is assigned to each traffic class. The weight assigned to a traffic class determines how often the traffic class should be served provided that packets are available to be sent. In other words, the weight associated with a traffic class determines the portion of bandwidth allocated to the traffic class.
One problem with known weight-based bandwidth allocation techniques is that they do not define how to assign weights and they may not be flexible enough for different situations. For example, in one situation, an administrator may wish to configure the router to support strict priority allocation in which higher priority traffic classes are always served over lower priority classes. In another situation, the administrator may wish to configure the router to support relative priority in which different traffic classes may not necessarily be served with strict priority relative to one another.
There is a need in the art to implement more flexible weight-based bandwidth allocation techniques.